package com.ynet.middleground.user.service;

import javax.validation.Valid;

import com.ynet.core.common.ServiceResult;
import com.ynet.middleground.user.bean.CheckSmsBalanceReq;
import com.ynet.middleground.user.bean.QuerySMSLogNoPageReq;
import com.ynet.middleground.user.bean.QuerySMSLogReq;
import com.ynet.middleground.user.bean.SendSmsReq;
import com.ynet.middleground.user.dto.QuerySMSLogDto;
import com.ynet.middleground.user.dto.SMSLogStatisticDto;
import com.ynet.middleground.user.dto.SendSmsInfoDTO;
import com.ynet.middleground.user.dto.SmsBalanceInfoDTO;

import java.util.List;

/**
 * SmsService 发短信服务
 *
 * @author liulx
 * @date 2022/12/19 10:27
 */
public interface SmsService {

    /**
     * 发送短信接口服务
     * 
     * @param req 发送短信请求信息
     * @return 发送短信结果信息
     */
    ServiceResult<SendSmsInfoDTO> sendSms(@Valid SendSmsReq req);

    /**
     * 查询短信账户余额
     * 
     * @param req 查询短信余额请求信息
     * @return 短信账户余额信息
     */
    ServiceResult<SmsBalanceInfoDTO> checkSmsBalance(@Valid CheckSmsBalanceReq req);

    /**
     * 内管统计查询
     */
    ServiceResult<SMSLogStatisticDto> QuerySMSLogStatistic(@Valid QuerySMSLogReq req);

    /**
     * 内管统计查询不分页
     */
    ServiceResult<SMSLogStatisticDto> QuerySMSLogStatisticNoPage(@Valid QuerySMSLogNoPageReq req);
}
